[Mobile Hacking 11] 민감정보 로깅 취약점

[Mobile Hacking 11] 민감정보 로깅 취약점

Lecture
Security
태그
mobile hacking
security
public
완성
Y
생성일
Mar 18, 2024 05:34 AM
LectureName
Mobile Hacking (Android- checklist)

1. 안전하지 않은 로깅


1.1 로그

로깅이란 운영되는 서비스들에 대하여 실행 상태나, 동작 등을 기록하여 해당 정보들을 파일 또는 출력을 통해 남기는 행위입니다. 이러한 흔적들을 분석하여 특정 서비스나 프로그램이 어떤 동작을 수행하였는지 알 수 있습니다.
 
 

1.2 로깅 취약점

어플리케이션이 실행되는 과정에서, 민감한 데이터나 노출되면 안되는 데이터들이 로그로 남게 되면 발생하는 취약점 입니다.
 
로그 버퍼는 다음과 같습니다.
로그 버퍼
설명
Main
주요 로그 버퍼로, android.util.Log 클래스로 기록된 로그등이 기록됩니다.
System
시스템 로그 버퍼로, 안드로이드 플랫폼 내부의 하위 레벨에 있는 시스템이나 디버깅을 위한 로그입니다.
Events
이벤트 로그 버퍼로, 시스템 이벤트에 대한 로그 메시지가 여기에 기록됩니다.
Kernel
커널 로그 버퍼로, 리눅스 커널에서 생성된 로그 메시지가 여기에 기록됩니다.
Radio
통신 관련 로그 메시지가 여기에 기록됩니다.
 
 

2. 실습


2.1 인시큐어 뱅크 앱

logcat 을 이용하여 PID로 필터링을 걸고 인시큐어 뱅크 앱을 실행시킨 후, 어플리케이션을 사용하며 어떤 로그들이 기록되는지 확인해 보겠습니다.
 

2.2 동작 로그 확인

➡️ PID 확인
notion image
  • 안드로이드 시스템에서 어플리케이션의 PID를 확인합니다.
 
➡️ locat (pid 필터링)
# cmd adb logcat --pid=7422
  • pid로 필터를 걸게 되면 해당 PID를 가지고 있는 어플리케이션에서 기록되는 로그만 확인할 수 있습니다.
  • 이후 어플리케이션에서 여러가지 동작을 수행하고 로그를 수집해 보겠습니다.
 
 

2.3 취약한 로그 수집

로그인
notion image
  • 로그인을 하게 되면, 아이디와 비밀번호가 log에 기록되는 것을 볼 수 있습니다.
 
송금
notion image
  • 송금 정보를 로그로 출력하기 때문에, 취약하다고 할 수 있습니다.
 
 

2.4 로그 필터링 및 저장

# /bin/bash adb logcat --pid=<pid> | grep <표현식>
  • 안드로이드에서 발생하는 로그는 종류가 많기 때문에 로그 등급 등으로 분류할 수 있습니다.
  • 하지만 grep 명령어 등을 이용하여 좀더 Custom하게 이용할수도 있습니다.
  • 리눅스 명령어를 좀더 잘 활용한다면, 로그 정보를 파일에 기록하여 추 후에 취약점 점검 이후 추가적으로 분석할 수 있습니다.
 
 
 

3. 대응방안


  • 중요 정보들이 노출되지 않도록 조치
  • 개발 단계에서 디버깅 용도로 기록하였던 로그는, 배포 단계에서 전부 삭제하고 배포